package com.example.homework.string.homework02;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        /*
        需求：请编写程序,由键盘录入一个字符串,统计字符串中,英文字母,和数字分别有多少个,比如：Hello12345World中字母：10个,数字：5个
         */
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个字符串：");
        // 使用 nextLine() 方法可以确保读取用户输入的整行文本,包括空格,适用于需要读取完整字符串的场景,这在统计字符串中英文字母和数字的个数时非常有用
        String str = sc.nextLine();
        count(str);
    }

    /**
     * 统计字符串中英文字母和数字的个数
     *
     * @param str 字符串
     */
    public static void count(String str) {
        // 创建两个变量,分别记录英文字母和数字的个数
        int letterCount = 0;
        int numberCount = 0;

        for (int i = 0; i < str.length(); i++) {
            // 取出当前索引对应的字符
            char c = str.charAt(i);
            if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
                // 说明是英文字母
                letterCount++;
            } else if (c >= '0' && c <= '9') {
                // 说明是数字
                numberCount++;
            }
        }

        System.out.println("字符串中英文字母的个数：" + letterCount);
        System.out.println("字符串中数字的个数：" + numberCount);
    }
}
